草庐IT

c++ - Lua C++ 表迭代

全部标签

java - 对字符串的迭代器进行排序

我有一个字符串迭代器。为了排序,我需要从中创建一个列表并使用Collections.sort(list)对其进行排序。有什么简单的方法可以对迭代器进行排序。 最佳答案 迭代器不是容器,它是一种遍历容器元素的实用程序。因此,如果您只能访问迭代器,则无法更改迭代器的创建者定义的迭代顺序。如果您无法更改原始容器,则必须将迭代器传递的元素收集到一个新的集合中,并在其中对它们进行排序。(了解迭代器的可能性的一个好方法是查看JDK类的源代码或实现自己的迭代器) 关于java-对字符串的迭代器进行排序

java - 为什么在 LinkedHashMap 中通过桶迭代比 HashMap 更快?

我费了很大劲才明白这一点。谷歌搜索,我找到了"HashMapiteratorhastoiteratethroughallthebucketsincludingemptybuckets"和"inLinkedHashMapalltheentriesaredoublylinked".如果是这种情况,为什么只有HashMap必须遍历空桶,而不是LinkedHashMap,尽管两者都是使用相同的桶概念实现的?所有的条目都是双向链接的,意思是“所有的桶和元素都是双向链接的”或者只是“元素是双向链接的”。请给我一张图表,解释LinkedHashMap中的双链接桶实现。非常感谢。

java - 如何以相反的顺序迭代 LinkedList 元素?

我是Java集合的新手,我的疑问是为什么我不能反向遍历链表中的元素。下面我将解释我做了什么,请澄清我的疑问。我为正向迭代创建了接口(interface)iterator,为反向迭代创建了listiterator。为什么向后迭代不起作用?我不能在同一个程序中使用iterator和listiterator接口(interface)来向前和向后迭代遍历一组元素吗?代码片段:importjava.util.*;classNewClass{publicstaticvoidmain(Stringargs[]){LinkedListobj=newLinkedList();obj.add("vino"

java - 迭代 List<String> 并修改 String

我不能用这种方式修改List的元素:for(Strings:list){s="x"+s;}执行后这个列表的代码元素没有改变如何用最简单的方式通过List实现modyfing的迭代。 最佳答案 由于String对象是不可变的,因此您无法更改正在迭代的值。此外,您不能修改在这样的循环中迭代的列表。执行此操作的唯一方法是使用标准循环遍历列表索引或使用ListIterator接口(interface):for(inti=0;i 关于java-迭代List并修改String,我们在StackOve

java - 数组、列表、集合和映射是可迭代的。还有什么?

即使只有List和Set实现了接口(interface)Iterable,我相信array,list,set和map都是所有iterable对象,因为我们可以通过foreach循环使用它们:for(Strings:newString[0]);for(Strings:newArrayList());for(Strings:newHashSet());for(Entryentry:newHashMap().entrySet());Map的情况可能有点不同,但让我们将其视为键值列表(它实际上是什么)。从可迭代的理解开始,我是否在以下方法中缺少类型?publicbooleanisIterabl

java - 我应该迭代一个 Java 集合来获取子集,还是应该先将它转换为数组然后迭代来获取它?

我正在调用一个API,它返回一个对象集合。我想获取对象的子集。我正在考虑两种解决方案。哪一个会给我更好的表现?根据我的理解,toArray()调用主要会遍历集合一次。如果那是真的,那么解决方案会更好吗?解决方案1-publicstaticListget(UUIDrecordid,intstart,intcount){Listnames=newArrayList();...Collectioncolumnnames=result.getColumnNames();intindex=0;for(UUIDcolumnname:columnnames){if((index>=start)&&(

java - 如何进入下一次迭代

这里是我想做的:在循环中,如果程序发现错误,它会打印出“Nothing”并进入下一个循环(跳过打印出“”Servicediscoveredatport:"+px+"\n"for(intpx=PORT1;px我应该在catch中放入什么代码?“休息”或“下一步”或???(这是java) 最佳答案 使用continue关键字:continue;它将中断当前迭代并从循环顶部继续。这里有一些进一步的阅读:continueKeywordinJava 关于java-如何进入下一次迭代,我们在Stac

java - 有效地迭代多个 Java Map 键集的联合

在我的一个Java6项目中,我有一个LinkedHashMap数组实例作为方法的输入,该方法必须遍历所有键(即通过所有映射的键集的并集)并使用关联的值。并非所有键都存在于所有映射中,并且该方法不应多次遍历每个键或更改输入映射。我目前的实现是这样的:Setkeyset=newHashSet();for(Mapmap:input){for(Objectkey:map.keySet()){if(keyset.add(key)){...}}}HashSet实例确保不会对任何键进行多次操作。不幸的是,这部分代码在性能方面相当关键,因为它被非常调用。事实上,根据分析器,超过10%的CPU时间花在了

java - 在测试中迭代所有 Play Framework 路由

有什么方法可以在routes文件中迭代所有描述的服务?需要URL和HTTP方法。我需要这个功能来运行一些集成测试。我正在使用PlayforJava。 最佳答案 不容易。不久前我设法破解了它(没有scala诀窍)。我会发布该代码,也许它会有用。publicstaticListparseRoutes(){scala.Optionoption=Play.application().getWrappedApplication().routes();if(option.isDefined()){play.core.Router.Routesr

java - 缓冲迭代器实现

有人知道开源BufferedIterator,它在后台线程上急切地获取下N个元素吗?这是animplementation来自TechRepublicarticle,但我认为它尚未经过彻底测试。Iterators.buffer(IteratortoBuffer,intbufferSize)是对Guava的一个很好的补充,有没有考虑过? 最佳答案 链接的实现似乎是为Java4编写的,可以使用guava和java.util.concurrent进行一些简化:importjava.util.Iterator;importjava.util.